/**
 */
package ConnectorGenerator.ConnectorArchitecture;

import ConnectorGenerator.CommunicationStyle.Role;

import ConnectorGenerator.ElementArchitecture.Port;
import ConnectorGenerator.ElementArchitecture.SubElement;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Role Mapping</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link ConnectorGenerator.ConnectorArchitecture.RoleMapping#getUnit <em>Unit</em>}</li>
 *   <li>{@link ConnectorGenerator.ConnectorArchitecture.RoleMapping#getRole <em>Role</em>}</li>
 *   <li>{@link ConnectorGenerator.ConnectorArchitecture.RoleMapping#getPort <em>Port</em>}</li>
 * </ul>
 * </p>
 *
 * @see ConnectorGenerator.ConnectorArchitecture.ConnectorArchitecturePackage#getRoleMapping()
 * @model
 * @generated
 */
public interface RoleMapping extends EObject {
	/**
	 * Returns the value of the '<em><b>Unit</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Unit</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Unit</em>' reference.
	 * @see #setUnit(SubElement)
	 * @see ConnectorGenerator.ConnectorArchitecture.ConnectorArchitecturePackage#getRoleMapping_Unit()
	 * @model required="true"
	 * @generated
	 */
	SubElement getUnit();

	/**
	 * Sets the value of the '{@link ConnectorGenerator.ConnectorArchitecture.RoleMapping#getUnit <em>Unit</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Unit</em>' reference.
	 * @see #getUnit()
	 * @generated
	 */
	void setUnit(SubElement value);

	/**
	 * Returns the value of the '<em><b>Role</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Role</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Role</em>' reference.
	 * @see #setRole(Role)
	 * @see ConnectorGenerator.ConnectorArchitecture.ConnectorArchitecturePackage#getRoleMapping_Role()
	 * @model required="true"
	 * @generated
	 */
	Role getRole();

	/**
	 * Sets the value of the '{@link ConnectorGenerator.ConnectorArchitecture.RoleMapping#getRole <em>Role</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Role</em>' reference.
	 * @see #getRole()
	 * @generated
	 */
	void setRole(Role value);

	/**
	 * Returns the value of the '<em><b>Port</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Port</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Port</em>' reference.
	 * @see #setPort(Port)
	 * @see ConnectorGenerator.ConnectorArchitecture.ConnectorArchitecturePackage#getRoleMapping_Port()
	 * @model required="true"
	 * @generated
	 */
	Port getPort();

	/**
	 * Sets the value of the '{@link ConnectorGenerator.ConnectorArchitecture.RoleMapping#getPort <em>Port</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Port</em>' reference.
	 * @see #getPort()
	 * @generated
	 */
	void setPort(Port value);

} // RoleMapping
